/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Banco.DAO;

import Banco.Classes.Aluno;
import Banco.Classes.ConfiguracaoTurma;
import Banco.Classes.Turma;
import Banco.Conexao.conexao3G;
import Banco.Conexao.conexaoPortal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Emanuel
 */
public class ConfiguracoesDAO {
    //Conjuntos das Chaves

    private conexaoPortal conectaPortal;
    private conexao3G conecta3g;
    private String nivelAcesso;
    //private String nomeBD;
    //private String loginBD;
    //private String senhaBD;
    //private String matriculaBD;
    public ConfiguracaoTurma config;
/**
 * Construtor
 */
    public ConfiguracoesDAO() {
        conectaPortal =conexaoPortal.getConexaoPortal();
        conecta3g = conexao3G.getConexao3G();
        config = new ConfiguracaoTurma();

    }
/**
 *
 * @param aluno - Aluno
 * @return Lista de todas as suas configurações de turma
 */
    public ArrayList<ConfiguracaoTurma> getConfiguracaoAluno(Aluno aluno) {
        ArrayList<ConfiguracaoTurma> configList = new ArrayList();
        //conecta3g.conecta();//configuração é lida do nosso banco 3g.
        String SQL = "SELECT * FROM configuracaoturma " +
                "WHERE aluno_matricula= '" + aluno.getMatricula() + "' ;";
       ResultSet rs3= conecta3g.executeSql(SQL);
       try {
            while (rs3.next()) {
                config = new ConfiguracaoTurma();//Verificar ordem dos campos.
                config.setAluno_matriculaFK(rs3.getString("aluno_matricula"));
                config.setTurma_cursoFK(rs3.getString("turma_curso"));
                config.setTurma_disciplinaFK(rs3.getString("turma_disciplina"));
                config.setTurma_periodoFK(rs3.getString("turma_periodo"));
                config.setTurma_turmaFK(rs3.getString("turma_turma"));
                config.setConfiguracao(rs3.getBoolean("configuracao"));
                configList.add(config);
            }
        } catch (SQLException ex) {
            Logger.getLogger(ConfiguracoesDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        //conecta3g.desconecta();
        return configList;
    }

//    public boolean updateConfiguracoes(ArrayList<ConfiguracaoTurma> configL) {
//        boolean retorno = false;
//        //conecta3g.conecta();
//        String SQL;
//        ConfiguracaoTurma c;
//        for (int i = 1; i <= configL.size(); i++) {
//            c = configL.get(i);
//            SQL = "UPDATE configuracaoturma SET configuracao=" + c.isConfiguracao() +
//                    " WHERE aluno_matricula = " + c.getAluno_matriculaFK() +
//                    " AND turma_curso = " + c.getTurma_cursoFK() +
//                    " AND turma_disciplina = " + c.getTurma_disciplinaFK() +
//                    " AND turma_periodo = " + c.getTurma_periodoFK();
//           ResultSet rs3= conecta3g.executeSql(SQL);
//        }
//        retorno = true;
//        return retorno;
//        //PODEMOS COLOCAR RETORNO BOOLEANO PARA IDENTIFICAR O RESULTADO
//    }
    /**
     * Atualiza configuração
     * @param c  - Configuração
     * @return True se a atualização ocorreu com sucesso e false se ocorreu alguma falha
     */
    public boolean updateConfiguracoes(ConfiguracaoTurma c) {
        boolean retorno = false;
        //conecta3g.conecta();
        String SQL;

        SQL = "UPDATE configuracaoturma SET configuracao=" + c.isConfiguracao() +
                " WHERE aluno_matricula = '" + c.getAluno_matriculaFK() +
                "' AND turma_curso = '" + c.getTurma_cursoFK() +
                "' AND turma_disciplina = '" + c.getTurma_disciplinaFK() +
                "' AND turma_periodo = '" + c.getTurma_periodoFK() +"'";
        conecta3g.execute(SQL);

        retorno = true;
        return retorno;
        //PODEMOS COLOCAR RETORNO BOOLEANO PARA IDENTIFICAR O RESULTADO
    }
/**
 *
 * @param a - Aluno
 * @param t - Turma
 * @return Configuração do aluno referente a turma passada
 */
    public ConfiguracaoTurma getConfiguracoesAlunoTurma(Aluno a, Turma t) {
        //conecta3g.conecta();
        String SQL = "SELECT * FROM configuracaoturma " +
                "WHERE aluno_matricula= '" + a.getMatricula() + "' AND " +
                "turma_curso= '" + t.getCurso() + "' AND " +
                "turma_disciplina= '" + t.getDisciplina() + "' AND " +
                "turma_turma= '" + t.getTurma() + "' AND " +
                "turma_periodo= '" + t.getPeriodo() + "'";
       ResultSet rs3= conecta3g.executeSql(SQL);
        try {
            while (rs3.next()) {
                config = new ConfiguracaoTurma();//Verificar ordem dos campos.
                config.setAluno_matriculaFK(rs3.getString("aluno_matricula"));
                config.setTurma_cursoFK(rs3.getString("turma_curso"));
                config.setTurma_disciplinaFK(rs3.getString("turma_disciplina"));
                config.setTurma_periodoFK(rs3.getString("turma_periodo"));
                config.setTurma_turmaFK(rs3.getString("turma_turma"));
                config.setConfiguracao(rs3.getBoolean("configuracao"));
            }
        } catch (SQLException ex) {
            Logger.getLogger(ConfiguracoesDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        //conecta3g.desconecta();
        return config;
    }
}
